home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / xfeel.zip / XFEEL.C < prev    next >
Text File  |  1992-08-17  |  3KB  |  94 lines

  1. /*-------------------------------------------------------------------------*/
  2. /*                                                                         */
  3. /*   XFEEL.C    : Compile this Module to XFEEL.EXE                         */
  4. /*                                                                         */
  5. /*   Version    : V1.00                                                    */
  6. /*                                                                         */
  7. /*   Date       : 31.07.92                                                 */
  8. /*                                                                         */
  9. /*   Copyright  : rf for Animal                                            */
  10. /*                                                                         */
  11. /*-------------------------------------------------------------------------*/
  12.  
  13. #define INCL_DOSPROCESS
  14. #define INCL_WINHOOKS
  15. #define INCL_WINBUTTONS
  16. #define INCL_WINFRAMEMGR
  17. #define INCL_WINTIMER
  18. #define INCL_DOSSEMAPHORES
  19. #define INCL_DOSMEMMGR
  20. #define INCL_DOSMODULEMGR
  21. #include <os2pm.h>
  22.  
  23. /*--------------------------------------------------------------------------*/
  24. MRESULT EXPENTRY myproc (HWND hwnd, USHORT msg, MPARAM mp1, MPARAM mp2)
  25.     {
  26.     return (WinDefWindowProc (hwnd, msg, mp1, mp2));
  27.     }
  28.  
  29. /*--------------------------------------------------------------------------*/
  30. unsigned long GetAddr(HMODULE *handle, char *filename, char *command)
  31.     {
  32.     char            errorname[6];
  33.     unsigned long   adr;
  34.  
  35.     if (DosLoadModule (errorname, 5, filename, handle))
  36.         return (0L);
  37.  
  38.     if (DosGetProcAddr (*handle, command, &adr))
  39.         return (0L);
  40.  
  41.     return (adr);
  42.     }
  43.  
  44. /*--------------------------------------------------------------------------*/
  45. void main ()
  46.     {
  47.     HAB            hab;
  48.     HMQ            hmq;
  49.     QMSG        qmsg;
  50.     HMODULE        mhand;
  51.     ULONG        adr;
  52.     SEL            sel;
  53.     HWND        hwnd, hwndclient;
  54.     ULONG        ff = FCF_TASKLIST;
  55.     
  56.     hab = WinInitialize (0);
  57.     hmq = WinCreateMsgQueue (hab, 0);
  58.  
  59.     WinRegisterClass (hab, "XFEELCLASS", myproc, 0L, 0);
  60.     hwnd = WinCreateStdWindow (HWND_DESKTOP, 0, &ff, "XFEELCLASS",
  61.                     NULL, 0L, NULL, 0, &hwndclient);
  62.  
  63.  
  64.     if (DosAllocShrSeg (sizeof (HWND), "\\SHAREMEM\\XFEEL.DAT", &sel))
  65.            {
  66.            WinMessageBox (HWND_DESKTOP, HWND_DESKTOP,
  67.                     "Could not allocate Memory. Program aborted !",
  68.                     NULL, 0, MB_OK|MB_ICONEXCLAMATION);
  69.            return;
  70.            }
  71.  
  72.        adr = GetAddr (&mhand, "XFEEL", "XFUNC");
  73.        if (!WinSetHook (hab, (HMQ)NULL, HK_INPUT, (PFN)adr, mhand))
  74.            {
  75.            WinMessageBox (HWND_DESKTOP, HWND_DESKTOP,
  76.                     "Could not Install Hook. Program aborted !",
  77.                     NULL, 0, MB_OK|MB_ICONEXCLAMATION);
  78.            return;
  79.            }
  80.  
  81.     WinStartTimer (hab, HWND_DESKTOP, 1, 1000);
  82.            
  83.     while (WinGetMsg (hab, &qmsg, NULL, 0, 0))
  84.         WinDispatchMsg (hab, &qmsg);
  85.         
  86.  
  87.        WinReleaseHook (hab, (HMQ)NULL, HK_INPUT, (PFN)adr, mhand);
  88.        DosFreeModule (mhand);
  89.  
  90.     WinDestroyWindow (hwnd);       
  91.     WinDestroyMsgQueue (hmq);
  92.     WinTerminate (hab);
  93.     }
  94.